package com.wlc.oop.innerclassdemo;

import java.math.BigDecimal;

/**
 * @author 王立朝 wanglichao@champion-credit.com
 * @description 匿名内部类
 * @date 2021-07-06 18:34
 */
public abstract class Hero3 {

   String name;

  public abstract void attack();

    public static void main(String[] args) {
        AdHero adHero = new AdHero();
        adHero.attack();
        System.out.println("adHero = " + adHero);

        // 当场实例化一个对象，并实现其方法
        Hero3 hero3 = new Hero3() {
            @Override
            public void attack() {
                System.out.println(name + " 新的攻击方法");
            }
        };
        hero3.name = "熊大";
        hero3.attack();
        // 通过打印，可以看到hero3 这个对象是属于Hero3$1 ，系统随机分配的名字
        System.out.println("hero3 = " + hero3);

        Hero3 hero4 = new Hero3() {
            @Override
            public void attack() {
                System.out.println(name + " 新的攻击方法2");
            }
        };
        hero4.name =  "光头强";
        hero4.attack();
        // 通过打印，可以看到hero4 这个对象是属于Hero3$2 ，系统随机分配的名字
        System.out.println("hero4 = " + hero4);

    }

}
